package com.dog.basics.service.mtkj;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dog.basics.bean.dto.admin.mtkj.CouponFromDto;
import com.dog.basics.bean.dto.api.mtkj.ApiCouponFromDto;
import com.dog.basics.bean.model.mtkj.MtCoupon;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dog.basics.bean.vo.admin.mtkj.CouponFromVo;
import com.dog.basics.bean.vo.api.mtkj.ApiCouponInfoVo;
import com.dog.basics.common.util.PageParam;

/**
 * <p>
 * 优惠券领用表 服务类
 * </p>
 *
 * @author wph
 * @since 2020-11-09
 */
public interface IMtCouponService extends IService<MtCoupon> {

    /**
     * Admin服务
     *  查询所有优惠券领用信息
     * @param: page
     * @param: fromDto
     * @returns
     * @author hangdy
     * @date: 2020/11/14 15:10
     */
    IPage<CouponFromVo> adimeFindCouponList(PageParam page, CouponFromDto fromDto);

    /**
     * Admin服务
     *  根据id删除优惠券领用信息
     * @param: id  优惠券领用表id
     * @returns 是否成功
     * @author hangdy
     * @date: 2020/11/14 15:15
     */
    Boolean adminDeleteById(Long id);


    /**
     * 分页查询用户所有优惠券
     * @param page
     * @param couponFromDto
     * @return
     */
    IPage<ApiCouponInfoVo> getPageList(PageParam page, ApiCouponFromDto couponFromDto);


    /**
     * 领取优惠券（新增）
     *      通过discountCouponId 查询优惠券信息，并生成IMtCoupon 记录
     * @param discountCouponId
     * @return
     */
    Boolean saveCoupon(Long discountCouponId);

    /**
     * 根据id删除优惠券，用户删除自己领取的优惠券
     * @param id
     * @return
     */
    Boolean deleteCoupon(Long id);



}
